package com.example.stringbufferlogger.service;

import com.example.stringbufferlogger.VO.PageResponse;
import com.example.stringbufferlogger.entity.LogRecord;

import java.util.List;

public interface LogRecordService {


    /**
     * 根据请求 ID 查询日志记录
     *
     * @param requestId 请求 ID
     * @return 日志记录对象
     */
    LogRecord getLogRecordByRequestId(String requestId);

    /**
     * 查询所有日志记录
     *
     * @return 日志记录列表
     */
    List<LogRecord> getAllLogRecords();

    /**
     * 根据多个条件查询日志记录
     *
     * @param requestId    请求 ID
     * @param replayStatus 是否回放
     * @return 日志记录列表
     */
    List<LogRecord> getLogRecordsByConditions(String requestId, String replayStatus);

    /**
     * 根据请求 ID 查询日志记录，包含转换后的 sessionAttributes Map
     *
     * @param requestId 请求 ID
     * @return 日志记录对象
     */
    LogRecord getLogRecordWithSessionAttributesMap(String requestId);

    /**
     * 分页查询日志记录
     * @param requestid
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageResponse<LogRecord> recordPageResponse(String requestid, int pageNum, int pageSize);
}
